home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
LANG
/
FORTH
/
FORTHMAC
/
OLD
/
TOOLS1
/
!Forthmacs.extend.arm.sqroot
< prev
next >
Wrap
Text File
|
1995-05-28
|
526b
|
27 lines
\ Contents: Square-root for ARM processors
\ u1 -- 32-bit unsigned
\ n -- significant digits
\ 16 -> sqrt-integer
\ 32 -> fractional integer 16/16bits
code (sqrt \ ( u1 n -- u2 )
r0 sp pop
r1 0 # mov
r2 0 # mov
begin r3 r1 mov
r0 r0 1 #lsl s mov
r2 r2 r2 adc
r0 r0 1 #lsl s mov
r2 r2 r2 adc
r1 r1 2 #lsl mov
r1 1 incr
r2 r2 r1 s sub \ get C-flag
r2 r2 r1 lt add
r1 r3 1 #lsl mov
r1 r1 1 # ge orr \ bit0 = not-C
top 1 s decr
eq until
top r1 mov c;
: sqrt ( u1 -- u2 ) d# 16 (sqrt ;